package com.example.wszb.ui.activity;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.example.wszb.pojo.DataLogin;
import com.example.wszb.R;
import com.example.wszb.pojo.LoginResult;
import com.example.wszb.pojo.User;
import com.example.wszb.utils.HttpUrlConnectionUtils;

public class LoginActivity extends AppCompatActivity {    //登录页面


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);


        ActionBar actionBar = getSupportActionBar();
        if(actionBar!=null)
            actionBar.hide();

        Button regist = findViewById(R.id.btn_register);//注册Button实例化   注册
        regist.setOnClickListener(new View.OnClickListener() {//设置点击注册的操作
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(LoginActivity.this,RegActivity.class);//Intent转换，实例化intent
                startActivity(intent);//跳转到注册页面RegActivity
            }
        });

        TextView replace = findViewById(R.id.textView_replace);//注册Button实例化   忘记密码
        replace.setOnClickListener(new View.OnClickListener() {//设置点击忘记密码的操作
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(LoginActivity.this,ReplaceActivity.class);//Intent转换，实例化intent
                startActivity(intent);//跳转到注册页面ReplaceActivity
            }
        });

        Button login = (Button) findViewById(R.id.btn_login);//登录Button实例化。
        login.setOnClickListener(new View.OnClickListener() {//设置点击登录的操作
            @Override
            public void onClick(View v) {
                //获取账号、密码输入文本并转换为字符类型，然后调用Data中的Login登录方法，传入账号、密码参数，返回一个布尔代数作判断。
                String account = ((EditText) findViewById(R.id.edit_account)).getText().toString();
                String password = ((EditText) findViewById(R.id.edit_password)).getText().toString();
                User user = new User();
                user.setAccount(account);
                user.setPassword(password);
                JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(user));


                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        String result = null;
                        try {
                            result = HttpUrlConnectionUtils.doPOST(jsonObject, "/login");
                            System.out.println(result);
                            User loginResult = JSONObject.parseObject(result, User.class);
                            Message message = handler.obtainMessage();
                            if ("1".equals(loginResult.getResult()) ){  //返回的结果为则登录成功，为0则登录失败
                                message.what = 1;//登录账号成功
                                message.obj = loginResult.getMsg();
                            } else {
                                message.what = 0;//登录账号失败
                                message.obj = loginResult.getMsg();
                            }
                            System.out.println(loginResult.getMsg());

                            handler.sendMessage(message);   // 发消息通知主线程更新UI
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                    }
                }).start();
            }
        });
    }


        @SuppressLint("HandlerLeak")
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if( msg.what == 1 ){   //登录成功
                Toast.makeText(LoginActivity.this,(String) msg.obj,Toast.LENGTH_SHORT).show();//生成对象，同时调用show方法显示。
                Intent intent_Main = new Intent(LoginActivity.this,MainActivity.class);//Intent转换，实例化intent
                intent_Main.putExtra("userAccount", msg.what);
                startActivity(intent_Main);//跳转到主页面MainActivity

            } else{ //登录失败
                Toast.makeText(LoginActivity.this,(String) msg.obj,Toast.LENGTH_SHORT).show();//生成对象，同时调用show方法显示。
            }
        }
    };
}